import java.util.Scanner;

public class Main {
    //序列重组矩阵
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int[] arr=new int[n*m];
        int[][] arr2=new int[n][m];
        for(int i=0;i<n*m;i++){
            arr[i]=sc.nextInt();
        }
        for(int i=0;i<n*m-1;i++){
            for(int j=0;j<n*m-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int tem=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=tem;
                }
            }
        }
        int num=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                arr2[i][j]=arr[num++];
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                System.out.print(arr2[i][j]+" ");
            }
            System.out.println();
        }
    }
    public static void main1(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[][] arr=new int[n][n];
        int ret=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                arr[i][j]=sc.nextInt();
            }
        }
        for(int i=1;i<n;i++){
            for(int j=0;j<i;j++){
                if(arr[i][j]!=0){
                    ret=1;
                }
            }
        }
        if(ret==1){
            System.out.println("NO");
        }else{
            System.out.println("YES");
        }
    }
}